#include "Hash.h"

//#include "utils/Logger.h"

/*
	Hash
*/

/*	public	*/

Hash::Hash() {
	for(int i = 0; i < HASH_SIZE; ++i) {
		_data[i] = 0;
	}
}

Hash::Hash(const Hash& hash) {
	_copyToSelf(hash);
}

Hash& Hash::operator=(const Hash& hash) {
	_copyToSelf(hash);
	return *this;
}

bool Hash::operator<(const Hash& hash) const {
	for(int i = 0; i < HASH_SIZE; ++i) {
		if (_data[i] < hash._data[i]) {
//			Logger::debug("*** Hash::operator< true");
			return true;
		} else if (_data[i] > hash._data[i]) {
//			Logger::debug("*** Hash::operator< false");
			return false;
		}
	}

//	Logger::debug("*** Hash::operator< false");
	return false;
}

bool Hash::operator==(const Hash& hash) const {
	for(int i = 0; i < HASH_SIZE; ++i) {
		if (_data[i] != hash._data[i]) {
//			Logger::debug("*** Hash::operator== false");
			return false;
		}
	}

//	Logger::debug("*** Hash::operator== true");
	return true;
}

void Hash::_copyToSelf(const Hash& hash) {
	for(int i = 0; i < HASH_SIZE; ++i) {
		_data[i] = hash._data[i];
	}
}

